package com.itheima.pattern.t1_singleton.demo7;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * 测试使用序列化和反序列化破坏单例模式
 */
public class TestDemo {

    public static void main(String[] args) throws Exception {
        // writeObjectToFile();
        readObjectFromFile();
        readObjectFromFile();
    }

    // 从文件读取数据（对象）
    public static void readObjectFromFile() throws Exception {
        // 1、创建对象输入流
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("F:\\a.txt"));
        // 2、读对象
        Singleton instance = (Singleton) ois.readObject();
        System.out.println(instance);
        // 3、释放资源
        ois.close();
    }

    // 向文件中写数据（对象）
    public static void writeObjectToFile() throws Exception {
        // 1、获取Singleton对象
        Singleton instance = Singleton.getInstance();
        // 2、创建对象输出流
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("F:\\a.txt"));
        // 3、写对象
        oos.writeObject(instance);
        // 3、释放资源
        oos.close();
    }
}
